package ${service};

import ${entity}.${className};
import com.open.model.Page;
import java.util.List;

/**
 * $!codeName
 *
 * @author $!currentUser
 * @date $!date
 */
public interface I${className}Service{

    /**
     * 添加对象
     * @param model
     * @return boolean
     * @date $!date
     */
    Boolean save(${className} model);

    /**
     * 修改对象
     * @param model
     * @return boolean
     * @date $!date
     */
    Boolean update(${className} model);

    /**
     * 批量添加对象
     * @param models
     * @return boolean
     * @date $!date
     */
    Boolean batchSave(List<${className}> models);

    /**
     * 批量修改对象
     * @param models
     * @return boolean
     * @date $!date
     */
    Boolean batchUpdate(List<${className}> models);

    /***
     * 根据主键查询
     *
     * @param pk 主键
     * @return ${className}
     */
    ${className} findByPk(${pk.jdbcType} pk);

    /**
     * 根据条件查询记录数
     *
     * @param item
     * @return Integer
     */
    Integer countByModel(${className} item);

    /**
     * 分页查询
     *
     * @param page
     * @param model
     * @return
     */
    Page<${className}> findPage(Page<${className}> page, ${className} model);

    /**
     * 根据条件查询
     *
     * @param model
     * @return
     */
    List<${className}> findByModel(${className} model);

    /**
     * 根据主键批量删除
     *
     * @param pks
     * @return boolean
     */
    Boolean remove(List<${pk.jdbcType}> pks);

    /**
     * 根据主键删除
     * @param pk 主键
     * @return boolean
     * @date $!date
     */
    Boolean delete(${pk.jdbcType} pk);
}